
#pragma once

#include <rviz_common/tool.hpp>
#include <rviz_default_plugins/visibility_control.hpp>
#include "rviz_custom_plugins/utils/interactive_marker_thread.h"
#include <rviz_default_plugins/tools/interaction/interaction_tool.hpp>

using rviz_custom_plugins::utils::InteractiveMarkerThread;
using rviz_default_plugins::tools::InteractionTool;

namespace rviz_custom_plugins
{

namespace tools
{

class RVIZ_DEFAULT_PLUGINS_PUBLIC InteractiveMarkerTool: public InteractionTool
{
    Q_OBJECT

public:

    InteractiveMarkerTool();

    void activate() override;
    void deactivate() override;

    void load( const rviz_common::Config& config ) override;
    void save( rviz_common::Config config ) const override;

private:
    std::shared_ptr<InteractiveMarkerThread> markerThread;
};

}


}